--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Commit b7b9fb0c0461a785eb3ce35fbb63d17aaa5083f9
Parents : 564e2f2
Author : Mark Qvist <mark@unsigned.io>
Date : 2025-01-05T12:03:27+01:00
Battery management for T3S3
Changes
Diff
diff --git a/Power.h b/Power.h
index 1d1dfb8..8586ca5 100644
--- a/Power.h
+++ b/Power.h
@@ -62,6 +62,22 @@
bool bat_voltage_dropping = false;
float bat_delay_v = 0;
float bat_state_change_v = 0;
+#elif BOARD_MODEL == BOARD_RNODE_NG_22
+ #define BAT_V_MIN 3.15
+ #define BAT_V_MAX 4.3
+ #define BAT_V_CHG 4.48
+ #define BAT_V_FLOAT 4.33
+ #define BAT_SAMPLES 5
+ const uint8_t pin_vbat = 1;
+ float bat_p_samples[BAT_SAMPLES];
+ float bat_v_samples[BAT_SAMPLES];
+ uint8_t bat_samples_count = 0;
+ int bat_discharging_samples = 0;
+ int bat_charging_samples = 0;
+ int bat_charged_samples = 0;
+ bool bat_voltage_dropping = false;
+ float bat_delay_v = 0;
+ float bat_state_change_v = 0;
#elif BOARD_MODEL == BOARD_TDECK
#define BAT_V_MIN 3.15
#define BAT_V_MAX 4.3
@@ -105,12 +121,14 @@ uint8_t pmu_rc = 0;
void kiss_indicate_battery();
void measure_battery() {
- #if BOARD_MODEL == BOARD_RNODE_NG_21 || BOARD_MODEL == BOARD_LORA32_V2_1 || BOARD_MODEL == BOARD_HELTEC32_V3 || BOARD_MODEL == BOARD_TDECK
+ #if BOARD_MODEL == BOARD_RNODE_NG_21 || BOARD_MODEL == BOARD_LORA32_V2_1 || BOARD_MODEL == BOARD_HELTEC32_V3 || BOARD_MODEL == BOARD_TDECK || BOARD_MODEL == BOARD_RNODE_NG_22
battery_installed = true;
battery_indeterminate = true;
#if BOARD_MODEL == BOARD_HELTEC32_V3
float battery_measurement = (float)(analogRead(pin_vbat)) * 0.0041;
+ #elif BOARD_MODEL == BOARD_RNODE_NG_22
+ float battery_measurement = (float)(analogRead(pin_vbat)) / 4095.0*2.0*3.3*1.1;
#else
float battery_measurement = (float)(analogRead(pin_vbat)) / 4095.0*2.0*3.3*1.1;
#endif
@@ -288,7 +306,7 @@ void update_pmu() {
}
bool init_pmu() {
- #if BOARD_MODEL == BOARD_RNODE_NG_21 || BOARD_MODEL == BOARD_LORA32_V2_1 || BOARD_MODEL == BOARD_TDECK
+ #if BOARD_MODEL == BOARD_RNODE_NG_21 || BOARD_MODEL == BOARD_LORA32_V2_1 || BOARD_MODEL == BOARD_TDECK || BOARD_MODEL ==BOARD_RNODE_NG_22
pinMode(pin_vbat, INPUT);
return true;
#elif BOARD_MODEL == BOARD_HELTEC32_V3
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────